﻿
//

//


using EMSNet.Core;
using System.ComponentModel.DataAnnotations;

namespace EMSNet.Service;

/// <summary>
/// 采集点管理基础输入参数
/// </summary>
public class EmsPollingPointBaseInput
{
    /// <summary>
    /// 主键Id
    /// </summary>
    public virtual long? Id { get; set; }
    
    /// <summary>
    /// 采集点编号
    /// </summary>
    public virtual string? Code { get; set; }
    
    /// <summary>
    /// 采集点名称
    /// </summary>
    public virtual string? Name { get; set; }
    
    /// <summary>
    /// 采集点名称（月）
    /// </summary>
    public virtual string? MonthName { get; set; }
    
    /// <summary>
    /// 能源类别
    /// </summary>
    public virtual string? Category { get; set; }
    
    /// <summary>
    /// 采集方式
    /// </summary>
    public virtual string? PollMethod { get; set; }
    
    /// <summary>
    /// 上报类别
    /// </summary>
    public virtual string? SendType { get; set; }
    
    /// <summary>
    /// 计算方法
    /// </summary>
    public virtual string? CalMethod { get; set; }
    
    /// <summary>
    /// 折标系数
    /// </summary>
    public virtual string? TolerancePercent { get; set; }
    
    /// <summary>
    /// 折标系数（计）
    /// </summary>
    public virtual string? TolerancePercent1 { get; set; }
    
    /// <summary>
    /// 是否可用
    /// </summary>
    public virtual string? IsUsed { get; set; }
    
}

/// <summary>
/// 采集点管理分页查询输入参数
/// </summary>
public class PageEmsPollingPointInput : BasePageInput
{
    /// <summary>
    /// 采集点编号
    /// </summary>
    public string? Code { get; set; }
    
    /// <summary>
    /// 采集点名称
    /// </summary>
    public string? Name { get; set; }
    
    /// <summary>
    /// 采集点名称（月）
    /// </summary>
    public string? MonthName { get; set; }
    
    /// <summary>
    /// 能源类别
    /// </summary>
    public string? Category { get; set; }
    
    /// <summary>
    /// 采集方式
    /// </summary>
    public string? PollMethod { get; set; }
    
    /// <summary>
    /// 上报类别
    /// </summary>
    public string? SendType { get; set; }
    
    /// <summary>
    /// 计算方法
    /// </summary>
    public string? CalMethod { get; set; }
    
    /// <summary>
    /// 折标系数
    /// </summary>
    public string? TolerancePercent { get; set; }
    
    /// <summary>
    /// 折标系数（计）
    /// </summary>
    public string? TolerancePercent1 { get; set; }
    
    /// <summary>
    /// 是否可用
    /// </summary>
    public string? IsUsed { get; set; }
    
    /// <summary>
    /// 选中主键列表
    /// </summary>
     public List<long> SelectKeyList { get; set; }
}

/// <summary>
/// 采集点管理增加输入参数
/// </summary>
public class AddEmsPollingPointInput
{
    /// <summary>
    /// 采集点编号
    /// </summary>
    [MaxLength(32, ErrorMessage = "采集点编号字符长度不能超过32")]
    public string? Code { get; set; }
    
    /// <summary>
    /// 采集点名称
    /// </summary>
    [MaxLength(32, ErrorMessage = "采集点名称字符长度不能超过32")]
    public string? Name { get; set; }
    
    /// <summary>
    /// 采集点名称（月）
    /// </summary>
    [MaxLength(32, ErrorMessage = "采集点名称（月）字符长度不能超过32")]
    public string? MonthName { get; set; }
    
    /// <summary>
    /// 能源类别
    /// </summary>
    [MaxLength(32, ErrorMessage = "能源类别字符长度不能超过32")]
    public string? Category { get; set; }
    
    /// <summary>
    /// 采集方式
    /// </summary>
    [MaxLength(32, ErrorMessage = "采集方式字符长度不能超过32")]
    public string? PollMethod { get; set; }
    
    /// <summary>
    /// 上报类别
    /// </summary>
    [MaxLength(32, ErrorMessage = "上报类别字符长度不能超过32")]
    public string? SendType { get; set; }
    
    /// <summary>
    /// 计算方法
    /// </summary>
    [MaxLength(32, ErrorMessage = "计算方法字符长度不能超过32")]
    public string? CalMethod { get; set; }
    
    /// <summary>
    /// 折标系数
    /// </summary>
    [MaxLength(32, ErrorMessage = "折标系数字符长度不能超过32")]
    public string? TolerancePercent { get; set; }
    
    /// <summary>
    /// 折标系数（计）
    /// </summary>
    [MaxLength(32, ErrorMessage = "折标系数（计）字符长度不能超过32")]
    public string? TolerancePercent1 { get; set; }
    
    /// <summary>
    /// 是否可用
    /// </summary>
    [MaxLength(32, ErrorMessage = "是否可用字符长度不能超过32")]
    public string? IsUsed { get; set; }
    
}

/// <summary>
/// 采集点管理删除输入参数
/// </summary>
public class DeleteEmsPollingPointInput
{
    /// <summary>
    /// 主键Id
    /// </summary>
    [Required(ErrorMessage = "主键Id不能为空")]
    public long? Id { get; set; }
    
}

/// <summary>
/// 采集点管理更新输入参数
/// </summary>
public class UpdateEmsPollingPointInput
{
    /// <summary>
    /// 主键Id
    /// </summary>    
    [Required(ErrorMessage = "主键Id不能为空")]
    public long? Id { get; set; }
    
    /// <summary>
    /// 采集点编号
    /// </summary>    
    [MaxLength(32, ErrorMessage = "采集点编号字符长度不能超过32")]
    public string? Code { get; set; }
    
    /// <summary>
    /// 采集点名称
    /// </summary>    
    [MaxLength(32, ErrorMessage = "采集点名称字符长度不能超过32")]
    public string? Name { get; set; }
    
    /// <summary>
    /// 采集点名称（月）
    /// </summary>    
    [MaxLength(32, ErrorMessage = "采集点名称（月）字符长度不能超过32")]
    public string? MonthName { get; set; }
    
    /// <summary>
    /// 能源类别
    /// </summary>    
    [MaxLength(32, ErrorMessage = "能源类别字符长度不能超过32")]
    public string? Category { get; set; }
    
    /// <summary>
    /// 采集方式
    /// </summary>    
    [MaxLength(32, ErrorMessage = "采集方式字符长度不能超过32")]
    public string? PollMethod { get; set; }
    
    /// <summary>
    /// 上报类别
    /// </summary>    
    [MaxLength(32, ErrorMessage = "上报类别字符长度不能超过32")]
    public string? SendType { get; set; }
    
    /// <summary>
    /// 计算方法
    /// </summary>    
    [MaxLength(32, ErrorMessage = "计算方法字符长度不能超过32")]
    public string? CalMethod { get; set; }
    
    /// <summary>
    /// 折标系数
    /// </summary>    
    [MaxLength(32, ErrorMessage = "折标系数字符长度不能超过32")]
    public string? TolerancePercent { get; set; }
    
    /// <summary>
    /// 折标系数（计）
    /// </summary>    
    [MaxLength(32, ErrorMessage = "折标系数（计）字符长度不能超过32")]
    public string? TolerancePercent1 { get; set; }
    
    /// <summary>
    /// 是否可用
    /// </summary>    
    [MaxLength(32, ErrorMessage = "是否可用字符长度不能超过32")]
    public string? IsUsed { get; set; }
    
}

/// <summary>
/// 采集点管理主键查询输入参数
/// </summary>
public class QueryByIdEmsPollingPointInput : DeleteEmsPollingPointInput
{
}

/// <summary>
/// 下拉数据输入参数
/// </summary>
public class DropdownDataEmsPollingPointInput
{
    /// <summary>
    /// 是否用于分页查询
    /// </summary>
    public bool FromPage { get; set; }
}

/// <summary>
/// 采集点管理数据导入实体
/// </summary>
[ExcelImporter(SheetIndex = 1, IsOnlyErrorRows = true)]
public class ImportEmsPollingPointInput : BaseImportInput
{
    /// <summary>
    /// 采集点编号
    /// </summary>
    [ImporterHeader(Name = "采集点编号")]
    [ExporterHeader("采集点编号", Format = "", Width = 25, IsBold = true)]
    public string? Code { get; set; }
    
    /// <summary>
    /// 采集点名称
    /// </summary>
    [ImporterHeader(Name = "采集点名称")]
    [ExporterHeader("采集点名称", Format = "", Width = 25, IsBold = true)]
    public string? Name { get; set; }
    
    /// <summary>
    /// 采集点名称（月）
    /// </summary>
    [ImporterHeader(Name = "采集点名称（月）")]
    [ExporterHeader("采集点名称（月）", Format = "", Width = 25, IsBold = true)]
    public string? MonthName { get; set; }
    
    /// <summary>
    /// 能源类别 关联值
    /// </summary>
    [ImporterHeader(IsIgnore = true)]
    [ExporterHeader(IsIgnore = true)]
    public string? Category { get; set; }
    
    /// <summary>
    /// 能源类别 文本
    /// </summary>
    [ImporterHeader(Name = "能源类别")]
    [ExporterHeader("能源类别", Format = "", Width = 25, IsBold = true)]
    public string CategoryFkDisplayName { get; set; }
    
    /// <summary>
    /// 采集方式
    /// </summary>
    [ImporterHeader(Name = "采集方式")]
    [ExporterHeader("采集方式", Format = "", Width = 25, IsBold = true)]
    public string? PollMethod { get; set; }
    
    /// <summary>
    /// 上报类别
    /// </summary>
    [ImporterHeader(Name = "上报类别")]
    [ExporterHeader("上报类别", Format = "", Width = 25, IsBold = true)]
    public string? SendType { get; set; }
    
    /// <summary>
    /// 计算方法
    /// </summary>
    [ImporterHeader(Name = "计算方法")]
    [ExporterHeader("计算方法", Format = "", Width = 25, IsBold = true)]
    public string? CalMethod { get; set; }
    
    /// <summary>
    /// 折标系数
    /// </summary>
    [ImporterHeader(Name = "折标系数")]
    [ExporterHeader("折标系数", Format = "", Width = 25, IsBold = true)]
    public string? TolerancePercent { get; set; }
    
    /// <summary>
    /// 折标系数（计）
    /// </summary>
    [ImporterHeader(Name = "折标系数（计）")]
    [ExporterHeader("折标系数（计）", Format = "", Width = 25, IsBold = true)]
    public string? TolerancePercent1 { get; set; }
    
    /// <summary>
    /// 是否可用
    /// </summary>
    [ImporterHeader(Name = "是否可用")]
    [ExporterHeader("是否可用", Format = "", Width = 25, IsBold = true)]
    public string? IsUsed { get; set; }
    
}
